package com.wanxi;

import com.wanxi.model.StudentModel;
import com.wanxi.util.MyScanner;

import java.util.ArrayList;

public class StudentManageSystem {
    /**
     * 可能是一个死循环，当输入5的时候，退出循环
     * 要添加学生，然后还可以在其他地方进行查询，说明数据是可以共享的
     * 应该有不同的方法
     */
    static MyScanner myScanner = new MyScanner();

    public static void main(String[] args) {
//        StudentModel model=new StudentModel();
//        add(model);
//        remove(model);
//        update(model);
//        find(model);
//        exitSystem(5);

        ArrayList<StudentModel> list = new ArrayList<>();
        while (true) {
            System.out.println("------------欢迎来到学生管理系统-----------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查询所有学生");
            System.out.println("5 退出");
            String num = myScanner.getString("请输入你的选择");
            switch (num) {
                case "1":
                    add(list);
                    break;
                case "2":
                    remove(list);
                    break;
                case "3":
                    update(list);
                    break;
                case "4":
                    find(list);
                    break;
                case "5":
                    exitSystem();
                    break;
                default:
                    System.out.println("你输入的序号不对，请重新输入");
                    break;
            }
        }


    }

    private static void exitSystem() {
        System.exit(0);
    }

    private static void find(ArrayList<StudentModel> list) {
        for (StudentModel model : list
        ) {
            System.out.println(model);
        }
    }

    private static void update(ArrayList<StudentModel> list) {
        String name = myScanner.getString("请输入你要修改的学生姓名");
//        修改list需要index索引，能不能用foreach来做？
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getName().equals(name)) {
                String newName = myScanner.getString("请输入学生的新名字");
                String newAge = myScanner.getString("请输入学生的新年龄");
                list.set(i, new StudentModel(newName, Integer.valueOf(newAge)));
                return;
            }
        }
        System.out.println("你输入的姓名不存在,不能修改");
    }

    private static void remove(ArrayList<StudentModel> list) {
        String name = myScanner.getString("请输入你要删除学生的姓名");
        for (StudentModel model : list
        ) {
            if (model.getName().equals(name)) {
                list.remove(model);
                return;
            }
        }
        System.out.println("你输入的姓名不存在,不能删除");
//        list.removeIf(model -> model.getName().equals(name));
    }

    private static void add(ArrayList<StudentModel> list) {
        String name = myScanner.getString("请输入姓名");
        String age = myScanner.getString("请输入年龄");
        StudentModel model = new StudentModel(name, Integer.valueOf(age));
        list.add(model);
        System.out.println("增加成功");
    }
}
